// pages/profile/index.ts
Page({

  /**
   * 页面的初始数据
   */
  data: {

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    // 没有登录就跳出
    if (!getApp().token) return
    // app里面有用户资料吗
    if (getApp().userProfile.nickName) {
      // 有
      this.setData({
        ...getApp().userProfile
      })
    } else {
      // 没有
      this.getUserProfile()
    }
  },
  // 获取用户资料
  async getUserProfile() {
    let res = await wx.http.get('/userInfo')
    // 更新页面
    this.setData({ ...res })
    // this.setData({ id: res.id, nickName: res.nickName, avatar: res.avatar })
    // 更新到App里面去
    getApp().userProfile = {
      nickName: res.nickName,
      avatar: res.avatar
    }
  },
  // 获取昵称
  async getUserNickname(event) {
    if (!event.detail.value) return
    // 更新  event.detail.value就是昵称
    await wx.http.put('/userInfo', { nickName: event.detail.value })
    // 提示
    wx.utils.toast('更新成功')
    // 更新页面视图
    this.setData({ nickName: event.detail.value })
    // 更新App里面的
    getApp().userProfile.nickName = event.detail.value
  },
  // 更新头像
  updateAvatar({ detail }) {
    // 原来发请求  wx.http
    console.log(detail.avatarUrl);  // 微信提供的临时头像地址
    // 将临时头像地址上传到自己的服务器
    wx.uploadFile({
      url: wx.http.baseURL + '/upload',  // url要写完整的基准地址+接口地址
      filePath: detail.avatarUrl,  // 临时头像地址
      header: {
        Authorization: `Bearer ` + getApp().token
      },
      name: 'file',
      formData: {
        type: 'avatar'
      },
      success: ({ data }) => {
        const res = JSON.parse(data)
        if (res.code === 10000) {
          // 成功 更新页面
          this.setData({
            avatar: res.data.url
          })
          // 更新App里面的
          getApp().userProfile.avatar = res.data.url
        } else {
          // 失败
          wx.utils.toast(res.message)
        }
      },
      fail: (error) => {
        console.log(error);
      },
      complete: () => { }
    });

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})